1. Field of the Invention
The present invention generally relates to an adaptive software framework. Specifically, the present invention relates to a method, system and program product for adapting software applications to meet the varying capabilities of pervasive devices.
2. Related Art
Recent improvements in pervasive devices and “third generation” wireless bandwidth offerings are leading to a wide variety of advanced applications on cellular telephones, personal digital assistants, and similarly pervasive client devices. However, to optimize the capabilities of such applications in an environment of widely diverse devices, it is important for applications to provide the same “logical functionality” irrespective of the device type, and vary how the functionality appears to the end user according to the features available on his or her device. Specifically, such applications should be capable of adapting (e.g., on-demand and at runtime) to the capabilities of many end-user devices.
For example, consider a simple application that must support the following logical functionality:
(1) Take a message from the user.
(2) Add a greeting line with parameters such as location, initiator characteristics (e.g., a quotation, a photograph, a musical tune, etc.).
(3) Send the message to a predefined list of friends.
Suppose it is desired to support this same logical functionality on two different device types A and B as described below:
Device A: supports pure text messaging and has no notion of location.
Device B: supports audio and location information such as GPS.
What is needed is a single application that when deployed on Device A will accept only a typed message for the greeting line, and when deployed on Device B will create an audio greeting and automatically add a prefix “this is Device B from Austin, Tex.”
The scenarios below illustrate additional scenarios where similar issues are encountered:
Scenario 1: Authentication
Device CapabilityUser ExperienceMinimumUser must enter a user name and passwordSmart Card ReaderUser must enter a private PIN uponinserting cardBiometric ReaderUser interacts with the device's biometricreader and is authenticatedScenario 2: Real-time communication
Device CapabilityUser ExperienceLow bandwidth dataUser must type messages to send and mustconnectionread them upon receipt.Low bandwidth data,User must select the party to be called fromembedded cell phonea directory, and use the cell phone for real-time voice communication.Low bandwidth, highUser may speak into the device, the speechprocessing poweris recognized and is sent to the called party,and vice-versa.High bandwidth, highUser may use voice over IP to participate inprocessing powerreal-time voice communications
To address the scenarios such as those illustrated above, two traditional solutions have been provided. The first is a lowest common denominator approach whereby software (e.g., JAVA Midlets, JAVA is a trademark of Sun Microsystems Corp. in the United States and/or elsewhere) is developed for a lowest common denominator device (i.e., the least sophisticated or capable device). Although such an approach is fairly easy to code and maintain, it does not take advantage of sophisticated device capabilities and must conform to the lowest common denominator devices such as cellular telephones. Another approach involves developing different version of software for different devices/capabilities. Although this allows different device capabilities to be taken advantage of, it is expensive and difficult to maintain and support.
In view of the foregoing, there exists a need for an adaptive software framework for pervasive devices. Specifically, a need exists for a system that allows a software application to be adapted and configured for the varying capabilities of different pervasive devices.